home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 24
/
AMIGAplus Sonderheft 24 (2000)(Falke)(DE)[!].iso
/
PublicDomain
/
Anwendungen
/
MT-RechnungIII
/
Rexx
/
WWMahnung_3.outrexx
< prev
next >
Wrap
Text File
|
1998-08-30
|
6KB
|
239 lines
/*
** Druck-, Vorschau, Sichern der 3. Mahnung mit Hilfe von WordWorth
** $VER: WWMahnung_3.outrexx V1.02 (30.08.98)
*/
PARSE ARG ARexxPort;
ADDRESS VALUE ARexxPort;
OPTIONS RESULTS;
WWVorlage = "WWDokumente/Mahnung3.ww";
WWDokument = "t:Mahnung3.ww";
WWPort = "WORDWORTH."
LF = '0a'x; /* Zeilenvorschub */
Gefunden = 0;
DO i = 1 TO 20 WHILE(Gefunden = 0)
IF show(ports, (WWPort || i)) THEN
DO;
Gefunden = 1;
WWPort = WWPort || i;
END;
END;
IF Gefunden = 0 THEN
DO;
ES_TITLE = "Warnung";
ES_TEXTFORMAT = "WordWorth ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut";
ES_GADGETFORMAT = "Abbrechen";
EASY_REQUEST;
EXIT;
END;
/* Original WW-Dokument nach t: kopieren, um ein versehentliches überschreiben */
/* dieser Vorlage zu verhindern */
GET_REXXPATH;
WWVorlage = MTR_RESULT || WWVorlage;
ADDRESS COMMAND "copy" WWVorlage WWDokument;
/* Oberfläche sperren */
LOCKGUI;
/* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */
PRINTSTATE;
Druckart = MTR_RESULT;
Ende_Kennzeichen = 'N';
/* Suchen der zu druckenden Daten */
GET_PREFS;
PRINTFIND;
/* Neues Dokument öffnen */
ADDRESS VALUE WWPort;
NEW;
WWPort = RESULT;
DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
CALL DatenAufbereiten;
SELECT;
WHEN Druckart = 0 THEN /* Drucken */
DO;
ADDRESS VALUE WWPort;
PRINT;
ADDRESS VALUE ARexxPort;
MTSCREENTOFRONT;
END;
WHEN Druckart = 1 THEN /* Vorschau */
ADDRESS VALUE ARexxPort;
WHEN Druckart = 2 THEN /* Sichern */
DO;
ADDRESS VALUE WWPort;
SAVEAS;
ADDRESS VALUE ARexxPort;
MTSCREENTOFRONT;
END;
OTHERWISE
DO;
ES_TITLE = "Warnung";
ES_TEXTFORMAT = "Druckart wird nicht unterstützt!";
ES_GADGETFORMAT = "Ok";
EASY_REQUEST;
Ende_Kennzeichen = 'J';
END;
END;
PRINTFIND;
END;
/* WordWorth-Datei aus t: wieder entfernen */
ADDRESS COMMAND "delete" WWDokument;
/* Oberfläche wieder entsperren */
ADDRESS VALUE ARexxPort;
FREEGUI;
EXIT;
DatenAufbereiten:
ADDRESS VALUE ARexxPort;
IF PREFS.NUMBER_DIGITS > 0 THEN
DO;
ZW_Rechnung = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || MTR_RESULT), PREFS.NUMBER_DIGITS );
ZW_Kunde = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || OB.INVOICEE_NUMBER), PREFS.NUMBER_DIGITS );
END;
ELSE
DO;
ZW_Rechnung = MTR_RESULT;
ZW_Kunde = OB.INVOICEE_NUMBER;
END;
IF PREFS.CLIENT_CODE = 1 THEN
ZW_Kunde = OB.INVOICEE.CUSTOMER.CLIENT_CODE;
FORMAT_DATE_LONG date(s);
PRINTDATE = MTR_RESULT;
FORMAT_DATE_SHORT OB.DATE_BILL;
BILL_DATE_SHORT = MTR_RESULT;
FORMAT_DATE_SHORT OB.DATE_DUNNING.1;
DUNNING1_DATE_SHORT = MTR_RESULT;
FORMAT_DATE_SHORT OB.DATE_DUNNING.2;
DUNNING2_DATE_SHORT = MTR_RESULT;
w = OB.CURRENCY_USED;
IF w < 2 THEN
FORMAT_MONEY1 OB.TOTAL_M_ALL_CH.w;
ELSE
FORMAT_MONEY2 OB.TOTAL_M_ALL_CH.w;
ZW_Betrag = MTR_RESULT;
ADDRESS VALUE WWPort;
OPEN FILENAME WWDokument FORCE;
DruckString = OB.OFFICE.ADDRESS.ADDRESS.2 || LF;
i = INDEX( DruckString, LF);
IF i > 0 THEN
DO;
DruckTeil = LEFT( DruckString, (i - 1) );
DruckString = SUBSTR(DruckString, (i + 1) );
i = INDEX( DruckString, LF);
END;
ELSE
DruckTeil = DruckString;
FINDCHANGE FIND "<OFFICE.ADDRESS.ADDRESS.2>" CHANGE DruckTeil;
DO WHILE( i > 0 );
DruckTeil = LEFT( DruckString, (i - 1) );
DruckString = SUBSTR(DruckString, (i + 1) );
LINE 1;
TEXT DruckTeil;
i = INDEX( DruckString, LF);
END;
POSITION SOF;
FINDCHANGE FIND "<PRINTDATE>" CHANGE PRINTDATE;
/* Leider wird bei längeren Texten der hintere Teil verschluckt, also nochmal ausgeben */
TEXT PRINTDATE;
POSITION SOF;
FINDCHANGE FIND "<OFFICE.ADDRESS.ADDRESS.0>" CHANGE OB.OFFICE.ADDRESS.ADDRESS.0;
/* Leider wird bei längeren Texten der hintere Teil verschluckt, also nochmal ausgeben */
TEXT OB.OFFICE.ADDRESS.ADDRESS.0;
POSITION SOF;
DruckString = OB.INVOICEE.CUSTOMER.ADDRESS.ADDRESS.2 || LF;
i = INDEX( DruckString, LF);
IF i > 0 THEN
DO;
DruckTeil = LEFT( DruckString, (i - 1) );
DruckString = SUBSTR(DruckString, (i + 1) );
i = INDEX( DruckString, LF);
END;
ELSE
DruckTeil = DruckString;
FINDCHANGE FIND "<CUSTOMER.ADDRESS.ADDRESS.2>" CHANGE DruckTeil;
DO WHILE( i > 0 );
DruckTeil = LEFT( DruckString, (i - 1) );
DruckString = SUBSTR(DruckString, (i + 1) );
LINE 1;
TEXT DruckTeil;
i = INDEX( DruckString, LF);
END;
POSITION SOF;
FINDCHANGE FIND "<OB.INVOICEE_NUMBER>" CHANGE ZW_Kunde;
POSITION SOF;
FINDCHANGE FIND "<OB.NUMBER>" CHANGE ZW_Rechnung;
FINDCHANGE FIND "<OB.NUMBER>" CHANGE ZW_Rechnung;
POSITION SOF;
FINDCHANGE FIND "<OB.DATE_BILL>" CHANGE BILL_DATE_SHORT;
FINDCHANGE FIND "<OB.DATE_BILL>" CHANGE BILL_DATE_SHORT;
POSITION SOF;
SELECT;
WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 0 THEN
DruckString = "Sehr geehrte Damen und Herren,";
WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 1 THEN
DruckString = "Sehr geehrtes Fräulein " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 2 THEN
DruckString = "Sehr geehrter Frau " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 3 THEN
DruckString = "Sehr geehrter Herr " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
OTHERWISE
DruckString = "Sehr geehrter Familie " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
END;
FINDCHANGE FIND "<CUSTOMER.ADDRESS.SALUTATION>" CHANGE DruckString;
POSITION SOF;
FINDCHANGE FIND "<OB.DATE_DUNNING.1>" CHANGE DUNNING1_DATE_SHORT;
POSITION SOF;
FINDCHANGE FIND "<OB.DATE_DUNNING.2>" CHANGE DUNNING2_DATE_SHORT;
POSITION SOF;
FINDCHANGE FIND "<OB.TOTAL_M_ALL_CH>" CHANGE ZW_Betrag;
POSITION SOF;
FINDCHANGE FIND "<OB.OFFICE.ADDRESS.BANK_NAME>" CHANGE OB.OFFICE.ADDRESS.BANK_NAME;
POSITION SOF;
FINDCHANGE FIND "<OB.OFFICE.ADDRESS.BANK_CODE_NUMBER>" CHANGE OB.OFFICE.ADDRESS.BANK_CODE_NUMBER;
POSITION SOF;
FINDCHANGE FIND "<OB.OFFICE.ADDRESS.ACCOUNT>" CHANGE OB.OFFICE.ADDRESS.ACCOUNT;
POSITION SOF;
FINDCHANGE FIND "<OFFICE.SUR_PRENAME>" CHANGE (OB.EMPLOYEE.ADDRESS.PRENAME OB.EMPLOYEE.ADDRESS.SURNAME);
RETURN;